Communication using connections in communication networks or between devices (e.g. processors) often involves the information being interchanged between the respective entities on a message basis, i.e. the entities interchange messages which comprise a number of information units (e.g. bytes), with the number of information units which a single message can hold having a lower limit (e.g. 1 byte) and an upper limit (e.g. 4096 bytes).
Since the entities can process information effectively only when using complete messages, memory management for the transmitter and/or receiver is in most cases performed on a message oriented basis, i.e. a defined number of storage locations (e.g. 10) are available which each hold precisely one message, regardless of length.
By contrast, transport is effected using a transport protocol which in many cases has a flow control feature which is oriented to the number of information units (e.g. byte oriented). This is abbreviated to the term “byte oriented” below, but this is not intended to represent any restriction to a byte as the basic information unit; instead, it is intended to clarify the present invention by way of example on the basis of a conventional information unit.
Byte oriented flow control means that a number of bytes is prescribed which the transport protocol can transmit from the transmitter to the receiver without acknowledgement. The various possible message lengths between the lower and upper limits mean that situations can arise in which all the storage locations for messages in the receiver have been used up (for example by short messages) but the byte oriented flow control feature permits further bytes, and hence messages, to be sent, with the messages being rejected in the receiver, however, because there are no longer any storage locations available. This rejection of messages is generally not signaled to the transmitter, however, but rather is established in the transmitter by virtue of a timer timing out. This means that redelivery of the corresponding messages is delayed by at least the running time of this timer, which ultimately means a time loss and additional load on the connection during message transmission.
A known way of toning down the effect resulting from this problem for real systems involves provision of a greater number of storage locations for messages in the receiver. This does not eliminate the conflict, however, but rather merely reduces the frequency of its occurrence.